This invention relates generally to a system and method for managing the data associated with any type of design project and in particular to a system and method for managing the data associated with a design project wherein the data is only accessible using different tools and the data is distributed.
The complexity of products and other projects (including hardware, software, mechanical and other technologies) under development today continues to increase with no end in sight. The increasing complexity of projects has significant ramifications on how these next-generation projects are built ranging from the types of technologies used during the development (e.g., the use of software to replace purely manual development processes) to the organizational structure used for the development project (e.g., the increased use of out-sourcing, concurrent engineering and distributed engineering). To better understand this problem, an example of an engineering project and product development will be used for illustration purposes. However, it should be understood that the problem and the solution to the problem in accordance with the invention may be equally applicable to other projects unrelated to engineering, such as financial project and supply chain projects.
For example, these next-generation products are increasingly being developed by engineering teams working concurrently wherein the engineering teams are often distributed between different locations and organizations. This new product development methodology takes advantage of many different specialized software tools and sometimes of automatic generation approaches. In many cases, the project may reuse pre-built library components. Thus, these new products typically require the combined efforts of engineers from several different engineering disciplines to work concurrently on the design of a product. For example, the development of an automobile powertrain requires engineers of different disciplines to work together and share information since the powertrain includes mechanical, hydraulic, electronic and software components that must be integrated together.
This cooperation of the distributed engineering teams requires the sharing and coordination of the flow of information between all of the project participants. The sharing and coordination of the information becomes critical to the success of the project. At the same time, engineering managers are tasked with reducing costs and time to market while increasing product quality. Other factors, such as new technologies and more demanding time to market periods, put a strain on the timely and effective information flow between the distributed engineering teams associated with a particular project.
Unfortunately, there is little ready-to-use software available to assist engineering managers in setting up an infrastructure to facilitate the concurrent, integrated engineering of complex products by distributed engineering teams. Although many different engineering tools exist today, these tools are typically focused on solving one particular engineering problem. In addition, these different engineering tools are typically not compatible with each other so that it is difficult to share information between the different tools. Thus, an engineer may find it difficult to visualize the whole picture since there is no single tool for viewing the information generated by all of the various different tools. For example, there are some excellent software tools for electronic design that are often indispensable for the design of a product""s electronic components, but they obviously cannot be used to develop the product""s software or mechanical components. The electronic design tools cannot be used to analyze the product as a whole since the product""s function and behavior are determined by the functions and behaviors of all of the components of the product together not just those components developed using the electronic design tool. The same problem exists for the tools in the other engineering domains, such as control design tools, systems analysis and design tools, software analysis and design tools, CAD, CAE and the like. The desire to resolve this problem of non-integrated engineering software islands that cannot share information has always been a fondest wish and need of both engineering managers as well as individual engineers that build products. The problem is that no one knew how to accomplish the goal. In fact, the desirability of such an integrated solution becomes increasingly more desirable and important as the complexity of the products continues to increase. Thus, while the time-to-market windows continue to shrink, the communication and collaboration between engineers and engineering teams is still typically performed as it always has been, i.e., either by getting together in person around a white board or by traditional means of communication such as telephones.
As a result of still sharing the information in this typical manner, engineers in many types of projects spend about 30% of their working time in meetings or on the phone exchanging information and talking about in-process development information, such as models, test cases, parameters and the like. In some particularly complex situations, the time spent in meeting and on conference calls is as high as 90% of their working time. In general, the time spent on collaboration increases directly with the complexity of the project reflecting the need to work with an increasing number of engineering experts in different fields for more complex projects. The problem with typical collaboration methods is that they tend to be error-prone, inefficient, temporary, expensive and very risky. For example, if a critical parameter is used by multiple engineers and this parameter is changed without all of the affected engineers being advised, some of the engineers will continue their concurrent development based on incorrect information. This obviously can lead to disastrous consequences. Typically, most engineers have experienced this problem that may cause product development delays, higher product development costs, lost market windows or, at worst, a product recall.
Thus, it is desirable to provide a project data management system that overcomes the above limitations and problems with typical project development tools and it is to this end that the present invention is directed.
The project data management system and method in accordance with the invention overcomes the above limitations and problems caused by the prevalence of xe2x80x9cinformation islandsxe2x80x9d in product development, each created with a typical product development tool. In particular, the system permits access, integration and analysis of the information created in one or more different engineering tools even when the tools are manufactured by different vendors, focus on different engineering disciplines, and are distributed over a local-area or wide-area network such as the internet. Thus, the system encourages and facilitates the sharing of information between the engineers to facilitate the concurrent development of a product using distributed engineering teams. The system also permits any engineer to access the project information regardless of the particular software tools being used by the engineer. In accordance with a preferred embodiment of the invention, the system may use a computer network, such as the World Wide Web, the Internet, a wide area network or a local area network, to communicate the information between the distributed engineering teams. As information in any portion of the project is changed, deleted or added, the updated information is fed to each instance of the information in the system so that any change by any engineer is reflected throughout the system. For example, if an engineer changes a critical parameter, that change is distributed to every other engineer so that, if any other engineer reviews that parameter at any time after the change has been made, the engineer will be presented with the updated parameter or notified of the change. Thus, the problem of using outdated information due a breakdown in information communication is eliminated.
In more detail, the system may include one or more databases that contain all or part of the project information. When any person involved with the project requests a particular piece of information, that information is obtained through an adaptor from its native source, may be replicated by the system and is provided to the person along with an viewer that may permit the person to view that information. The viewer might also support the editing of the information. Thus, each person accessing the information only has a copy of the information which ensures that the integrity of the data is maintained. If any person makes an change to any piece of information in the project, that change is updated to every other person currently viewing that information so that the information is updated in real-time. The system may also include a locking mechanism to ensure that only one person may make a change to a particular piece of information at any time which maintain the integrity of the information.
For a user using a client, which may be a stand-alone personal computer or a software process running on a shared computer, the system presents the user with an easy to use user interface. In particular, the system uses the well-known typical browser interface and presents either web pages or Java applets to the user in order to present information to the user. For example, a web page or a Java applet may be used to display a meta-object to the user and may be used to permit the user to establish a hot-link between two meta-objects.
Thus, in accordance with the invention, a project data management system is provided, comprising an integration server for storing one or more master meta-objects and one or more slave meta-objects, the master meta-objects being originated at the integration server and the slave meta-objects being originated at a remote site, and a client computer for accessing the master and slave meta-objects stored on the integration server. The system further comprises one or more enablers in the integration server, each enabler associated with each tool that is used to generate information stored in the integration server and permitting the information to be accesssed by a user without accessing the particular tool. The system further comprises one or more differencers in the integration server for comparing the values of the meta-objects being accessed by the user at predetermined time periods in order to determine if the particular meta-object has been changed and for updating the values associated with the meta-object when a change has occurred.
In accordance with another aspect of the invention, a project data management system is provided, comprising a first integration server that stores one or more master meta-objects relating to data associated with the project wherein the master meta-objects are generated by one or more different tools and one or more second integration servers connected to the first integration server, the other integration servers storing one or more master meta-objects and one or more slave meta-objects wherein the master meta-objects are generated by users connected to the second integration servers and the slave meta-objects are generated by a user connected to the first integration server. The first and second integration servers further receives a user request to access a meta-object not located on the server, requests a replicated meta-object from the server that stores the master meta-object and receives a replicated meta-object so that the user may access the meta-object.
In accordance with yet another aspect of the invention, a project data management method is provided, comprising storing one or more master meta-objects relating to data associated with the project on a first integration server wherein the master meta-objects are generated by one or more different tools. The method further comprises connecting one or more second integration servers to the first integration server, the other integration servers storing one or more master meta-objects and one or more slave meta-objects wherein the master meta-objects are generated by users connected to the second integration servers and the slave meta-objects are generated by a user connected to the first integration server. The method further comprises receiving a user request to access a meta-object not located on the server, requesting a replicated meta-object from the server that stores the master meta-object, and receiving a replicated meta-object so that the user may access the meta-object.
In accordance another aspect of the invention, a method for updating a meta-entity stored in a distributed project data management system having one or more integration servers is provided. The method comprises receiving a request to update a meta-object for a particular integration server wherein the meta-objects includes a master meta-object, each master meta-object having one or more associated slave meta-objects, and determining that the master lock is located at the master meta-object. The method further comprises updating the master meta-object, and propagating the updates to the master meta-object to the slave meta-objects associated with the master meta-object.